class Solution {//leetcode476——环绕字符串中唯一的子字符串
public:
    int findSubstringInWraproundString(string s) {
        int hash[26]={0};
        int n=s.size();
        vector<int> dp(n+1,1);
        hash[s[0]-'a']=1;
        for(int i=2;i<n+1;i++){
            if(s[i-1]==s[i-2]+1||(s[i-1]=='a'&&s[i-2]=='z')){
                dp[i]=dp[i-1]+1;
            }
            hash[s[i-1]-'a']=max(hash[s[i-1]-'a'],dp[i]);
        }
        int sum=0;
        for(int i=0;i<26;i++){
            sum+=hash[i];
        }
        return sum;
    }
};